// Have include guard.
#ifndef VALUEOUTPUT_H
#define VALUEOUTPUT_H

/**
 *  The ValueOutput acts as an interface for a method of outputting a value (e.g. the SmartDashboard).
 *  
 *  @tparam Value The type of value that can be output.
 */
template<typename Value>
class ValueOutput
{
	public:
		/**
		 *  Destructor for ValueOutput.
		 */
		virtual ~ValueOutput()
		{
		}
		
		/**
		 *  Set the value to output.
		 *  
		 *  @param value The value to output.
		 */
		virtual void SetValue(Value value) = 0;
};

#endif // #ifndef SELECTORCONTROLLER_H 
